namespace ns11
{
	internal struct Struct14
	{
		private readonly Struct12[] struct12_0;

		private readonly int int_0;

		public Struct14(int numBitLevels)
		{
			int_0 = numBitLevels;
			struct12_0 = new Struct12[1 << numBitLevels];
		}

		public void method_0()
		{
			for (uint num = 1u; num < 1 << int_0; num++)
			{
				struct12_0[num].method_1();
			}
		}

		public uint method_1(Class63 class63_0)
		{
			uint num = 1u;
			for (int num2 = int_0; num2 > 0; num2--)
			{
				num = (num << 1) + struct12_0[num].method_2(class63_0);
			}
			return num - (uint)(1 << int_0);
		}

		public uint method_2(Class63 class63_0)
		{
			uint num = 1u;
			uint num2 = 0u;
			for (int i = 0; i < int_0; i++)
			{
				uint num3 = struct12_0[num].method_2(class63_0);
				num <<= 1;
				num += num3;
				num2 |= num3 << i;
			}
			return num2;
		}

		public static uint smethod_0(Struct12[] struct12_1, uint uint_0, Class63 class63_0, int int_1)
		{
			uint num = 1u;
			uint num2 = 0u;
			for (int i = 0; i < int_1; i++)
			{
				uint num3 = struct12_1[uint_0 + num].method_2(class63_0);
				num <<= 1;
				num += num3;
				num2 |= num3 << i;
			}
			return num2;
		}
	}
}
